package com.caigou.service;

import com.caigou.bean.cms.entity.Channel;
import com.caigou.bean.cms.param.*;
import com.caigou.bean.param.FrontChannelDataPram;
import com.caigou.bean.vo.*;
import com.caigou.pojo.ChannelDataList;
import com.caigou.pojo.ChannelOtherConfigData;
import com.caigou.pojo.HeaderConfig;
import com.caigou.util.Result;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface ChannelService {
    Result loadChannelConfigList(ChannelParam param);

    Result updateChannelConfig(ChannelParam param);

    Result saveChannelData(List<ChannelDataParam> param);

    Result deleteChannelData(ChannelDataParam param);

    Result updateChannelData(ChannelDataParam param);

    Result loadChannelDataList(ChannelDataListParam param);

    Result updateChannelDataStickStatus(ChannelDataParam param);

    Result updateChannelDataRecommendStatus(ChannelDataParam param);

    Result loadChannelRecommendDataList(ChannelDataListParam param);

    Result saveChannelRecommendData(ChannelDataParam param);

    Result updateChannelRecommendData(ChannelDataParam param);

    Result loadChannelTitleConfig(ChannelDataParam param);

    Result loadChannelRecommendDataInfo(ChannelDataParam param);

    Result updateChannelDataLockStatus(ChannelDataParam param);

    Result updateChannelDataShowIndex(List<ChannelDataParam> list);

    Result loadChannelOtherConfig(ChannelParam param);

    Result updateChannelOtherConfig(ChannelOtherConfigData param);

    Result loadCollectionSubstationChannelList(String userId);

    Result savePublishPrivileges(StaffPublishParam param);

    Result findPublishPrivileges(StaffPublishParam param);

    Result findStaffPublishPrivileges(String userId);

    Result findStaffHomePagePrivilege(HomePageParam param, String userId);

    Result loadChannels(String userId);

    Result saveStaffManagePrivilegesByUserId(List<Integer> privilegeCodes, String userId);

    Result findSectionStatus(SectionStatusParam param);

    Result updateSectionStatus(SectionStatusParam param);

    Result findStaffManagePrivilegesByUserId(String userId);

    Result loadChannelHotSearchData(FrontChannelDataPram pram);

    List<ChannelDataList> loadChannelRecommendDataList(String plateId);

    HeaderConfig loadChannelHeaderConfig(String plateId);

    Channel getChannelByPlateId(String plateId);

    Channel loadChannelByPlate(String plateId);

    Channel loadChannelByArticle(String articleId);

    List<Channel> listChannelByChannelType(Integer channelType);

    List<Channel> listChannelByChannelValues(List<String> channel);

    List<Channel> selectChannelBySuperIdAndChannelType(String superId, Integer channelType);

    boolean deleteChannelHotSearchDataFromRedis(FrontChannelDataPram param);

    boolean updateChannelDataRecommend(String articleId, String channelId);
}
